/// 
/// MaDAson - Toolkit for Model Driven Software Development
/// 
/// Copyright [2006] Marcus Lankenau
/// 
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///  
///     http://www.apache.org/licenses/LICENSE-2.0
///  
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
/// 

using System;


namespace Madason.MetaModel.Solution
{

	/// <summary>
	/// Summary description for SolutionProject
	/// </summary>
	public class SolutionProject : Namespace
	{

		public ProjectList GetChildProjectsSorted()
		{
			ProjectList list = ChildProjects;
			for (int i=0; i<list.Count-1; i++)
			{
				for (int j = i + 1; j < list.Count; j++)
				{
					Project p1 = list[i];
					Project p2 = list[j];
					if (p1.DependsOn(p2))
					{
						list[i] = p2;
						list[j] = p1;
					}
				}
			}
			return list;
		}

		public ProjectList ChildProjects
		{
			get 
			{
				ProjectList list = new ProjectList();
				foreach (Namespace ns in Namespaces)
				{
					if (ns is Project) list.Add(ns as Project);
				}
				return list;
			}
		}
	}

}
